package com.qingcloud.adminbackend.entity.equipment;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 设备数据表
 * </p>
 *
 * @author luozehua
 * @since 2019-04-16
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("sys_equipment")
public class SysEquipment extends Model {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 设备id
     */
    @ApiModelProperty(value = "设备id")
    private String equipmentId;

    /**
     * 产品型号（1微站；2：E600；3：C600；4：其他）
     */
    @ApiModelProperty(value = "产品型号（1微站；2：E600；3：C600；4：其他）")
    private String productType;

    /**
     * 设备种类(1:样机；2：新机）
     */
    @ApiModelProperty(value = " 设备种类(1:样机；2：新机）")
    private Integer equipmentCatagory;

    /**
     * 验证状态(1:已验证；2：待验证）
     */
    @ApiModelProperty(value = " 验证状态(1:已验证；2：待验证）")
    private Integer verifyStatus;

    /**
     * 上传间隔
     */
    @ApiModelProperty(value = "上传间隔")
    private Integer uploadInternel;

    /**
     * 搜集间隔
     */
    @ApiModelProperty(value = "搜集间隔")
    private Integer collectInternel;

    /**
     * 出厂时间
     */
    @ApiModelProperty(value = "出厂时间")
    private String factoryTime;

    /**
     * 物联网卡号
     */
    @ApiModelProperty(value = "物联网卡号")
    private String phoneNum;

    /**
     * 生产厂商
     */
    @ApiModelProperty(value = "生产厂商")
    private String manufacturer;

    /**
     * 固件版本号（嵌入式程序版本号）
     */
    @ApiModelProperty(value = "固件版本号（嵌入式程序版本号）")
    private String softwareVersion;

    /**
     * 硬件版本号
     */
    @ApiModelProperty(value = "硬件版本号")
    private String hardwareVersion;

    /**
     * 接收端类型(1:第一代接收端济宁；2：第二代接收平台成都接收
     */
    @ApiModelProperty(value = "接收端类型(1:第一代接收端济宁；2：第二代接收平台成都接收")
    private Integer receiverVersion;

    /**
     * 接收端IP地址
     */
    @ApiModelProperty(value = "接收端IP地址")
    private String receiverIp;

    /**
     * imei号码
     */
    @ApiModelProperty(value = " imei号码")
    private String imeiNum;

    /**
     * imsi号码
     */
    @ApiModelProperty(value = "imsi号码")
    private String imsiNum;

    /**
     * ccid号码
     */
    @ApiModelProperty(value = "ccid号码")
    private String ccidNum;

    /**
     * Led开关(1:打开；0关闭）
     */
    @ApiModelProperty(value = "Led开关(1:打开；0关闭）")
    private Integer ledStatus;

    /**
     * LED灯最大亮度
     */
    @ApiModelProperty(value = "LED灯最大亮度")
    private String ledMaxBrigh;

    /**
     * 蜂鸣器开关(1:打开；0关闭）
     */
    @ApiModelProperty(value = "蜂鸣器开关(1:打开；0关闭）")
    private Integer buzzerStatus;

    /**
     * 经度（设备上传）
     */
    @ApiModelProperty(value = "经度（设备上传）")
    private BigDecimal lng;

    /**
     * 维度（设备上传）
     */
    @ApiModelProperty(value = "维度（设备上传）")
    private BigDecimal lat;

    /**
     * 合格标志（1：未测试；2：生产测试完成；3：校准完成)
     */
    @ApiModelProperty(value = "合格标志（1：未测试；2：生产测试完成；3：校准完成)")
    @TableField(exist = false)
    private Integer standardFlag;

    /**
     * 设备状态(3:故障;2正常;1:维修中;0:报废)
     */
    @ApiModelProperty(value = "设备状态(3:故障;2正常;1:维修中;0:报废)")
    private Integer status;

    /**
     * 设备运行模式(1:闲置模式;2:测试模式;3:监测模式;4:低功率模式;5:校准模式)
     */
    @ApiModelProperty(value = "设备运行模式(1:闲置模式;2:测试模式;3:监测模式;4:低功率模式;5:校准模式)")
    private Integer runningMode;

    /**
     * 共享状态 0.不共享 1.共享
     */
    @ApiModelProperty(value = "共享状态 0.不共享 1.共享")
    private Integer shared;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String mark;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createDt;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createBy;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    private Date modifyDt;

    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    private String modifyBy;

    /**
     * 定时任务监听设备是否在线(0未在线，1在线)
     */
    @ApiModelProperty(value = "定时任务监听设备是否在线(0未在线，1在线)")
    private Integer onlineStatus;

    /**
     * 定时任务监听设备在线离线状态时间
     */
    @ApiModelProperty(value = "定时任务监听设备在线离线状态时间")
    private Date statusTime;

    /**
     * 定时任务实时监听时间
     */
    @ApiModelProperty(value = "定时任务实时监听时间")
    private Date monitorTime;

    /**
     * 设备重新上电时间
     */
    @ApiModelProperty(value = "设备重新上电时间")
    private Date rebootTime;

    @ApiModelProperty(value = "删除标识")
    private Integer deleteFlag;

    @ApiModelProperty(value = "设备在MQTT协议中的topic关键字")
    private String productKey;

    @ApiModelProperty(value = "在线控制（0：支持；1不支持）", example = "0")
    private Integer onlineControl;

    @ApiModelProperty(value = "是否需要预热（0：是，1：否）", example = "0")
    private Integer ispreheat;

    @ApiModelProperty(value = "设备连接网关ID", example = "0")
    private Integer gatewayId;

    @ApiModelProperty(value = "设备连接网关IP", example = "0")
    private String gatewayIp;

    @ApiModelProperty(value = "设备连接网关端口", example = "0")
    private String gatewayPort;

}
